1. Field of the Invention
This invention relates to a method and apparatus for drawing antialiased lines on a raster scan display device of a computer graphics system.
2. Description of the Related Art
Images displayed on computer graphics displays often suffer from the presence of aliasing artifacts that give a jagged appearance to lines or polygon edges displayed on the screen. Antialiasing is a technique for smoothing jagged lines drawn on a computer graphics image.
Various methods of drawing antialiased lines are known in the art, including those described in the following references and the references cited therein:
Pitteway et al., "Bresenham's Algorithm with Grey Scale", Communications of the ACM, Vol. 23, No. 11, pp. 625-626 (Nov. 1980);
Gupta et al., "Filtering Edges for Gray-Scale Displays", Computer Graphics, Vol. 15, No. 3, pp. 1-5 (Aug. 1981);
Akeley et al., "High-Performance Polygon Rendering", Computer Graphics, Vol. 22, No. 4, pp. 239-246 (Aug. 1988);
U.S. Pat. No. 4,586,037 (Rosener et al.);
U.S. Pat. No. 4,796,020 (Budrikis et al.);
U.S. Pat. No. 4,873,515 (Dickson et al.).
Several of these methods involve variants of the Bresenham incremental line-drawing procedure, in which an incrementally generated error term is used to determine intensity values as well as the pixel addresses of the line approximation. Thus, Gupta et al. (1981) use an incrementally generated term representing the perpendicular distance between the pixel center and the center of the ideal line as an index to a lookup table of intensity values representing a conical filter. Similarly, Rosenet et al. and Dickson et al. use incrementally generated terms representing the vertical distance between the pixel center and the center of the ideal line as indices to lookup tables. In each of these cases, the actual distance (perpendicular or vertical) of the line from the pixel center is used to determine the pixel intensity. Since the actual distance is generally a fractional number, the hardware required for such an operation can be quite expensive.
Most of these methods of antialiasing use a differential digital analyzer (DDA) line drawing procedure or slope method. To obtain the slope of a line, the minor axis increment is divided by the minor axis increment. A divide in hardware takes a lot of time and logic, and is therefore, undesirable.